The present invention relates to a method and apparatus for downloading information to a gaming device and in particular, to a process for using a computer, directly or remotely, to transfer information to a gaming device in a secure fashion.
Many current gaming machines are configured with electronic components, commonly mounted on one or more printed circuit boards (PCBs). Many such electronic components use programming or other information stored in memories. In at least one typical configuration, a gaming terminal or gaming machine will include a controller board, a communications board or module, and one or more so-called peripheral boards such as a display controller board, a currency acceptor board, a coin handler board, and the like. Typically at least one board, such as the game controller board, includes a processor (e.g., a microprocessor) or other computer unit which often operates based on programming or other information (software) stored in a memory such as one or more electronically erasable programmable read-only memories (EEPROMS). Such software may be programmed or stored in the memory locations during the manufacturing or assembly of the gaming device. Additionally, software may be provided to replace or supplement the software in a gaming device which is in operation (in the field), e.g. to add new features, implement new games and the like, and/or to correct programming errors. In either case, the new software is transferred or xe2x80x9cdownloadedxe2x80x9d from a source (which may be, e.g., a computer such as a workstation personal computer, laptop computer, and the like) to the xe2x80x9ctargetxe2x80x9d memory in a particular gaming terminal or machine.
Downloading from one computer to another is a process that is known, in general. In one previous system, information from a host system such as a state lottery host has been downloaded to a clerk validation terminal (CVT). A clerk validation terminal is used for verifying a ticket obtained from a lottery terminal e.g. to verify a validation number, amount and the like before a lottery ticket is paid, e.g. as an anti-counterfeiting procedure. However, downloading software to components of gaming devices and/or to a plurality of gaming devices or components thereof presents particular problems not readily addressed by conventional downloading techniques.
One aspect applicable to gaming devices is the stringent regulatory oversight and control exercised by regulatory authorities in many jurisdictions. In many, and perhaps all, regulated gaming jurisdictions, downloading of software to a gaming terminal will not be permitted without some assurance that the new software will comply with local regulations.
For example, a gaming regulatory authority in one jurisdiction may require assurance that downloading to, e.g., update bill acceptor software will result in a machine having bill acceptor software appropriate (and approved) for that jurisdiction (and will not, e.g., run the risk of inadvertently and/or intentionally downloading bill acceptor software that was approved in a different jurisdiction).
It is also commonly found that gaming devices occur in a wide variety of configurations, such as employing numerous different types of processors, memories, game configurations, versions and types, peripheral hardware and software and the like. Additionally, owing to differences in manufacturing dates, maintenance history and the like, gaming devices are often encountered with a wide variety of different hardware and software components which may not be apparent (or may be discernable only with difficulty) from a visual inspection of the gaming device, its components, or its operation. For this reason, when it is desired to download software to a particular gaming terminal, it is typically necessary to select a particular software version for downloading, bearing in mind the types of software and hardware found on the particular gaming terminal, lest the newly-downloaded software is incompatible with the gaming terminal or results in operation which is not approved by a particular jurisdiction. Additionally, it is possible that the software which is to be downloaded is, in fact, already present on a particular gaming terminal, so that the download process represents a waste of time and effort.
Although many types of memories can be modified to store other or additional programs (such as an erasable programmable read-only memory or EPROM), in many previous devices this was often a labor-intensive and time-consumptive procedure, sometimes involving removing the EPROM or other memory device and reprogramming it in a separate device and/or replacing it with a differently-programmed memory device. Many pin-type memory devices are configured to tolerate only a limited number of removal and insertion operations. Other memory devices are configured for solder connection or are otherwise not readily replaceable, necessitating replacement of an entire board to effect updating.
Such manual operations have, in the past, typically required a significant investment of time, especially when a relatively large number of gaming terminals are being programmed or reprogrammed. To make matters worse, the time investment is typically made by relatively highly-trained personnel. Such investment of time by relatively highly-trained personnel represents a significant expense involved in storing or updating gaming terminal programming or other information which, owing at least partly to the regulatory environment found for gaming devices, was previously believed to be a largely unavoidable cost. Furthermore, it has been found that even relatively highly-trained personnel have an undesirably high error rate when attempting to perform a download which may lead to inoperability or improper operation of a gaming device, or violation of gaming jurisdiction laws or rules and may require an additional investment of time to correct such errors.
This situation is particularly burdensome in the context of gaming devices in which it is sometimes necessary or desirable to change the programming in a large number of peripheral devices in a relatively short amount of time. One example of such a situation is when it is desired to reprogram a bill acceptor, e.g. to thwart a previously-unknown counterfeiting scheme. Previous systems which required labor-intensive and time-intensive reprogramming methods increased the risk of incurring losses during the time it took to perform this reprogramming for all the various gaming machines (e.g., in a plurality of different casinos) or their various components. An important feature of the invention is that it allows for download of data to multiple gaming devices simultaneously.
Another feature of many gaming devices which affects the manner in which revisions of software can or should be performed is the fact that gaming devices are often configured to dispense money so there is a potential for modifications or downloads to be performed in an unauthorized fashion in such a manner as to create unauthorized or improper payouts. This is a potential which is typically not present in many other types of downloads from one computer to another. Accordingly, it is important, not only to gaming regulatory authorities but also to casinos or other game operators, to achieve a level of confidence that not only will inadvertent (e.g. cross-jurisdictional) downloads be avoided but there are procedures in place to avoid or prevent intentional or unauthorized downloads.
Furthermore, previous reprogramming took place in a relatively conspicuous manner requiring personnel to access the interior of each individual peripheral and/or terminal, often for an extended period of time, thus potentially alerting the counterfeiters that they had been detected and decreasing the likelihood of using the new software to identify (possibly leading to apprehension of) the counterfeiters. In addition, the time during which a machine was being fitted with the new programs was time that the machine was out of service and not generating revenues.
In some situations, it may be advantageous to update the programming of two or more different gaming terminals and/or two or more different peripheral devices coupled to a single gaming device. Previous methods would, in this situation, typically have required separately accessing each of the gaming terminals and/or peripheral devices in order to modify or update programming.
As noted, it is often desirable to reprogram gaming terminals, e.g. to accommodate new games, regulatory changes, correct bugs or other programming errors, install new features and the like. Preferably, this should be accomplished with a minimum of down time of gaming devices (which often are intended normally to be accessible 24 hours a day) and a minimum of inconvenience to players.
Accordingly, it would be advantageous to provide a method and apparatus for downloading programming information in a manner which is less labor-intensive and less costly than previously provided, preferably without requiring individual direct access to each peripheral device which is being reprogrammed, and preferably while providing sufficient security and reliability safeguards that fully and partially automatic downloads will be permitted by gaming regulatory authorities.
The present invention provides for securely loading information, received from an external device (such as a laptop or a networked central computer) to one or more gaming devices. Preferably, the secure downloading system provides identification, negotiation, data transfer and verification features. Identification involves obtaining information for characterizing the hardware and/or software on a gaming terminal or other target. The identification information can be used to provide assurance that the programming or other data to be downloaded and/or the download procedures are appropriate for the target device. Negotiation involves providing information from the source to the target, relating to the download, such as where to load, compression information (if any) and the like. Preferably the source requests approval from the target device before data transfer begins. Preferably, data transfer is performed block-wise with checking of each block. Verification can be performed by the source requesting a digital signature calculated from the transferred data, preferably based on a public key decryption algorithm.
In one embodiment, the update or modified peripheral device program is received in the gaming terminal (or other computing device) from an external device (such as a hand-held or portable device or a central computer coupled via a communications link) and is downloaded from the gaming terminal controller board to one or more coupled peripheral devices.
Preferably, the programming information is downloaded in such a way as to reduce or minimize the amount of down time or inconvenience to players. In one embodiment, when the new peripheral program is downloaded from a central computer to each gaming terminal, the method avoids disabling all gaming terminals at the same time, such as by waiting until the gaming terminal is idle for a predetermined period before downloading the new program to peripheral devices or by cycling through various gaming terminals or groups of gaming terminals so that a relatively small number of the gaming terminals are disabled (for reprogramming) at any one time. Additionally, the invention allows for download to multiple gaming devices or peripheral devices simultaneously.